// @ts-ignore
/* eslint-disable */
import request from '@/request'

/** 创建应用 用户创建应用（只需提供提示词，应用名称自动生成，类型默认为多文件模式） POST /app/add */
export async function addApp(body: API.AppAddDTO, options?: { [key: string]: any }) {
  return request<API.BaseResponseLong>('/app/add', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}

/** 流式生成代码 用户根据 id 流式生成代码 GET /app/chat/gen/code */
export async function chatToGenCode(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.chatToGenCodeParams,
  options?: { [key: string]: any }
) {
  return request<API.ServerSentEventString[]>('/app/chat/gen/code', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 删除应用 用户根据 id 删除自己的应用 POST /app/delete */
export async function deleteApp1(body: API.DeleteRequest, options?: { [key: string]: any }) {
  return request<API.BaseResponseBoolean>('/app/delete', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}

/** 此处后端没有提供注释 POST /app/deploy */
export async function deployApp(body: API.AppDeployDTO, options?: { [key: string]: any }) {
  return request<API.BaseResponseString>('/app/deploy', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}

/** 获取应用详情 用户根据 id 查看应用详情 GET /app/getById */
export async function getAppById1(
  // 叠加生成的Param类型 (非body参数swagger默认没有生成对象)
  params: API.getAppById1Params,
  options?: { [key: string]: any }
) {
  return request<API.BaseResponseAppVO>('/app/getById', {
    method: 'GET',
    params: {
      ...params,
    },
    ...(options || {}),
  })
}

/** 分页查询精选应用 用户分页查询精选的应用列表 POST /app/list/featured */
export async function listFeaturedAppByPage1(
  body: API.AppQueryDTO,
  options?: { [key: string]: any }
) {
  return request<API.BaseResponsePageAppVO>('/app/list/featured', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}

/** 分页查询所有精选应用 分页查询所有精选应用列表（无需登录） POST /app/list/featured/all */
export async function listAllFeaturedAppByPage(
  body: API.AppQueryDTO,
  options?: { [key: string]: any }
) {
  return request<API.BaseResponsePageAppVO>('/app/list/featured/all', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}

/** 分页查询自己的应用 用户分页查询自己的应用列表 POST /app/list/my */
export async function listMyAppByPage(body: API.AppQueryDTO, options?: { [key: string]: any }) {
  return request<API.BaseResponsePageAppVO>('/app/list/my', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}

/** 分页查询公开应用 分页查询公开应用列表（无需登录） POST /app/list/public */
export async function listPublicAppByPage(body: API.AppQueryDTO, options?: { [key: string]: any }) {
  return request<API.BaseResponsePageAppVO>('/app/list/public', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}

/** 更新应用 用户根据 id 修改自己的应用（支持修改应用名称和封面） POST /app/update */
export async function updateApp1(body: API.AppUpdateDTO, options?: { [key: string]: any }) {
  return request<API.BaseResponseBoolean>('/app/update', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}

/** 更新应用公开状态 用户更新自己应用的公开状态（1-公开，0-私有） POST /app/update/public */
export async function updateAppPublicStatus(
  body: API.AppPublicDTO,
  options?: { [key: string]: any }
) {
  return request<API.BaseResponseBoolean>('/app/update/public', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    data: body,
    ...(options || {}),
  })
}
